$(function () {
    initTable();
    $('#search').click(function(){
        $('#table').bootstrapTable('refresh', {url: ctx + '/user/query'});
    });
    $("#delect").click(function () {
        var selRow = $('#table').bootstrapTable('getSelections');
        if (selRow.length==0) {
            alert('没有选中记录');
        }else {
            if (confirm("确定删除？")) {
                var selId = selRow.map(function (item) {
                    return item.userId
                })
                console.log(selId)
                $.ajax({
                    type: "POST",
                    url: ctx + "/user/delete",
                    traditional: true,
                    data: {
                        userIds: selId
                    },
                    success: function (data) {
                        if (data.code == 200) {
                            $('#table').bootstrapTable('refresh', {url: ctx + '/user/query'});
                        } else {
                            alert(data.msg);
                        }
                    }
                })
            }
        }
    });

    showButton([{bId:"addnew",url:"/user/add"},{bId:"delect",url:"/user/delete"}]);

});
var dataRow = [];
function  initTable() {
    $('#table').bootstrapTable({
        height:top.frameHeight*0.7,
        url: ctx + '/user/query', //这个接口需要处理bootstrap table传递的固定参数
        method:'post',
        dataType: "json",
        cache: false,   //是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
        contentType:"application/x-www-form-urlencoded; charset=UTF-8",   //post请求,content type默认设置为 text/plain,在服务端直接通过 @RequestParam参数映射是获取不到的。
        striped: true,      //是否显示行间隔色
        pagination: true,     //是否显示分页（*）
        sortable: false,      //是否启用排序
        sortOrder: "asc",     //排序方式
        pageNumber:1,      //初始化加载第一页，默认第一页
        pageSize: 10,      //每页的记录行数（*）
        pageList: [10, 25, 50, 100 ],  //可供选择的每页的行数（*）
        queryParamsType:'',  //默认值为 'limit' ,在默认情况下 传给服务端的参数为：offset,limit,sort
        //设置为 ''  在这种情况下传给服务器的参数为：pageSize,pageNumber
        queryParams : queryParams,    //前端调用服务时，会默认传递上边提到的参数，如果需要添加自定义参数，可以自定义一个函数返回请求参数
        sidePagination: "server",   //分页方式：client客户端分页，server服务端分页（*）
        responseHandler:function(res){
            //远程数据加载之前,处理程序响应数据格式,对象包含的参数: 我们可以对返回的数据格式进行处理
            //在ajax后我们可以在这里进行一些事件的处理
            dataRow = res.data.rows
            return res.data;
        },
        onLoadSuccess:function () {
            $('.query').click(function () {
                var index = $(this).data('index')
                formdata = dataRow[index]
                $("#form").setForm(formdata)
                $('#modalUser').modal({backdrop: 'static', keyboard: false});
                $("#submintBtn2").hide()
                $("#submintBtn").hide()
                $("#userName").attr('readonly','readonly')
                $("#userId").attr('readonly','readonly')
                $("#loginCode").attr('readonly','readonly')
                $("#mobile").attr('readonly','readonly')
                $("#organizationId").attr('readonly','readonly')
                $("#password").attr('readonly','readonly')
                $("#email").attr('readonly','readonly')
                $("#roleId").attr('readonly','readonly')
            })
            $('.edit').click(function () {
                var index = $(this).data('index')
                formdata = dataRow[index]
                $("#form").setForm(formdata)
                $('#modalUser').modal({backdrop: 'static', keyboard: false});
                $("#submintBtn2").show()
                $("#submintBtn").hide()
                $("#userName").removeAttr('readonly')
                $("#userId").removeAttr('readonly')
                $("#loginCode").attr('readonly','readonly')
                $("#mobile").removeAttr('readonly')
                $("#organizationId").removeAttr('readonly')
                $("#password").removeAttr('readonly')
                $("#email").removeAttr('readonly')
                $("#roleId").removeAttr('readonly')
            })
            $('.editpassword').click(function () {
                if(confirm("确定重置？")) {
                    var index = $(this).data('index');
                    formdata = dataRow[index];
                    $.ajax({
                        type: 'POST',
                        url: ctx + "/user/resetPassword",
                        dataType: 'json',
                        data: {
                            loginCode: formdata.loginCode
                        },
                        success: function (data) {
                            if (data.code == 200) {
                                alert("重置成功，默认密码：“123456”");
                            } else if (data.code == 30020) {
                                alert('无效用户')
                            } else {
                                alert(data.msg)
                            }
                        }
                    });
                }
            })
        },
        strictSearch: true,
        clickToSelect: true,    //是否启用点击选中行
        searchOnEnterKey: true,
        columns: [{
            checkbox: true
        },{
            title: '序号',  //标题  可不加
            align: 'center',
            formatter: function (value, row, index) {
                var pageNumber = $('#table').bootstrapTable('getOptions').pageNumber;
                var pageSize = $('#table').bootstrapTable('getOptions').pageSize;
                return (pageNumber-1) * pageSize+index+1;
            }
        },{
            field: 'userName',
            align: 'center',
            title: '用户名'
        }, {
            field: 'loginCode',
            align: 'center',
            title: '帐号'
        },{
            field: 'mobile',
            align: 'center',
            title: '手机号码'
        }, {
            field: 'email',
            align: 'center',
            title: '电子邮箱'
        }, {
            field: 'orgName',
            align: 'center',
            title: '所属部门'
        },{
            field: 'roleName',
            align: 'center',
            title: '所属角色'
        }, {
            field: 'createDate',
            align: 'center',
            title: '创建时间',
            formatter:function (value) {
                return $.myTime.UnixToDate(value)
            }
        }, {
            field: 'price',
            align: 'center',
            title: '操作',
            width:'170',
            formatter: function (value, row, index) {
                var a = '<button type="button" class="btn btn-primary btn-xs query" data-index="'+index+'">查看</button>&nbsp;&nbsp;';

                var b = '';
                var c = '';

                var roleFuncCode = JSON.parse(sessionStorage.getItem("roleFuncCode"));
                if($.inArray("/user/update",roleFuncCode)>=0)
                    b = '<button type="button" class="btn btn-default btn-xs edit" data-index="'+index+'">编辑</button>&nbsp;&nbsp;';

                if($.inArray("/user/passwordModify",roleFuncCode)>=0)
                    c = '<button type="button" class="btn btn-default btn-xs editpassword" data-index="'+index+'">重置密码</button>';

                return a+b+c;
            }
        }]
    });
}
function queryParams(params){
    return {
        pageNumber : params.pageNumber,
        pageSize : params.pageSize,
        userName : $("#name").val(),
        loginCode : $("#account").val(),
        organizationId : $("#org").val(),
        roleId : $("#role_id").val()
    }
}